package edu.gdkm.demo;

public class Demo37 {
    public static void main(String[] args) {
        Demo37.heart(8);
        Demo37.circle(10);
        Demo37.rect(5,5);
    }
    //定义一个方法，用*号输出心型图案，可以用参数设定心型图案的高度
    static void heart(int height){
        int size = height; // 定义爱心的大小
        // 打印上半部分
        for (int i = size / 2; i <= size; i += 2) {
            for (int j = 1; j < size - i; j += 2) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            for (int j = 1; j <= size - i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
// 打印下半部分
        for (int i = size; i >= 1; i--) {
            for (int j = i; j < size; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= (i * 2) - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
    //定义一个方法，用*号输出圆形图案，可以用参数设定圆的半径
    static void circle(int r){
        for (int y = 0; y <= 2 * r; y += 2) {
            int x = (int)Math.round(r -  Math.sqrt(2 * r * y - y * y));
            int len = 2 * (r - x);
            for (int i = 0; i <= x; i++) {
                System.out.print(' ');
            }
            System.out.print('*');
            for (int j = 0; j <= len; j++)  {
                System.out.print('*');
            }
            System.out.println('*');
        }
    }
    //定义一个方法，用*号输出矩形图案，可以用参数设定长宽
    static void rect(int x,int y){
        for(int j = 0;j < x;j++){        //行数5
            for(int i = 0;i < y;i++){   //列数5
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
